
(define (problem roverprob4123)
        (:domain rover)
        (:objects general - lander colour - mode high_res - mode low_res - mode
         rover0 - rover rover1 - rover rover2 - rover rover0store - store
         rover1store - store rover2store - store waypoint0 - waypoint waypoint1
         - waypoint waypoint2 - waypoint waypoint3 - waypoint waypoint4 -
         waypoint waypoint5 - waypoint camera0 - camera camera1 - camera
         objective0 - objective objective1 - objective)
        (:init (visible waypoint0 waypoint3) (visible waypoint3 waypoint0)
         (visible waypoint0 waypoint5) (visible waypoint5 waypoint0)
         (visible waypoint1 waypoint0) (visible waypoint0 waypoint1)
         (visible waypoint2 waypoint0) (visible waypoint0 waypoint2)
         (visible waypoint2 waypoint1) (visible waypoint1 waypoint2)
         (visible waypoint2 waypoint5) (visible waypoint5 waypoint2)
         (visible waypoint3 waypoint2) (visible waypoint2 waypoint3)
         (visible waypoint4 waypoint0) (visible waypoint0 waypoint4)
         (visible waypoint4 waypoint3) (visible waypoint3 waypoint4)
         (visible waypoint5 waypoint1) (visible waypoint1 waypoint5)
         (visible waypoint5 waypoint4) (visible waypoint4 waypoint5)
         (at_soil_sample waypoint1) (at_rock_sample waypoint2)
         (at_rock_sample waypoint3) (at_soil_sample waypoint4)
         (at_rock_sample waypoint4) (at_rock_sample waypoint5)
         (at_lander general waypoint3) (channel_free general)
         (at rover0 waypoint2) (available rover0) (store_of rover0store rover0)
         (empty rover0store) (equipped_for_soil_analysis rover0)
         (equipped_for_rock_analysis rover0) (equipped_for_imaging rover0)
         (can_traverse rover0 waypoint2 waypoint0)
         (can_traverse rover0 waypoint0 waypoint2)
         (can_traverse rover0 waypoint2 waypoint1)
         (can_traverse rover0 waypoint1 waypoint2)
         (can_traverse rover0 waypoint2 waypoint3)
         (can_traverse rover0 waypoint3 waypoint2)
         (can_traverse rover0 waypoint2 waypoint5)
         (can_traverse rover0 waypoint5 waypoint2)
         (can_traverse rover0 waypoint0 waypoint4)
         (can_traverse rover0 waypoint4 waypoint0) (at rover1 waypoint3)
         (available rover1) (store_of rover1store rover1) (empty rover1store)
         (equipped_for_rock_analysis rover1)
         (can_traverse rover1 waypoint3 waypoint0)
         (can_traverse rover1 waypoint0 waypoint3)
         (can_traverse rover1 waypoint3 waypoint2)
         (can_traverse rover1 waypoint2 waypoint3)
         (can_traverse rover1 waypoint3 waypoint4)
         (can_traverse rover1 waypoint4 waypoint3)
         (can_traverse rover1 waypoint0 waypoint1)
         (can_traverse rover1 waypoint1 waypoint0)
         (can_traverse rover1 waypoint0 waypoint5)
         (can_traverse rover1 waypoint5 waypoint0) (at rover2 waypoint4)
         (available rover2) (store_of rover2store rover2) (empty rover2store)
         (equipped_for_soil_analysis rover2)
         (equipped_for_rock_analysis rover2) (equipped_for_imaging rover2)
         (can_traverse rover2 waypoint4 waypoint0)
         (can_traverse rover2 waypoint0 waypoint4)
         (can_traverse rover2 waypoint4 waypoint5)
         (can_traverse rover2 waypoint5 waypoint4)
         (can_traverse rover2 waypoint0 waypoint1)
         (can_traverse rover2 waypoint1 waypoint0)
         (can_traverse rover2 waypoint0 waypoint3)
         (can_traverse rover2 waypoint3 waypoint0)
         (can_traverse rover2 waypoint5 waypoint2)
         (can_traverse rover2 waypoint2 waypoint5) (on_board camera0 rover0)
         (calibration_target camera0 objective0) (supports camera0 colour)
         (supports camera0 high_res) (on_board camera1 rover2)
         (calibration_target camera1 objective1) (supports camera1 high_res)
         (visible_from objective0 waypoint0)
         (visible_from objective0 waypoint1)
         (visible_from objective0 waypoint2)
         (visible_from objective0 waypoint3)
         (visible_from objective0 waypoint4)
         (visible_from objective1 waypoint0)
         (visible_from objective1 waypoint1)
         (visible_from objective1 waypoint2)
         (visible_from objective1 waypoint3))
        (:goal
         (and (communicated_soil_data waypoint4)
              (communicated_soil_data waypoint1)
              (communicated_rock_data waypoint3)
              (communicated_rock_data waypoint2)
              (communicated_rock_data waypoint4)
              (communicated_image_data objective0 high_res)))
        (:constraints
         (and (preference a0 (always (at rover2 waypoint4)))
              (preference e0 (sometime (at rover2 waypoint0)))
              (preference e1 (sometime (at rover2 waypoint1)))
              (preference e2 (sometime (at rover1 waypoint0)))
              (preference e3 (sometime (at rover1 waypoint4)))
              (preference e4 (sometime (full rover0store)))
              (preference e5 (sometime (have_rock_analysis rover2 waypoint4)))
              (preference e6 (sometime (have_rock_analysis rover1 waypoint4)))
              (preference e7 (sometime (calibrated camera0 rover0)))
              (preference o0 (at-most-once (empty rover2store)))
              (preference o1 (at-most-once (full rover2store)))
              (preference o2 (at-most-once (empty rover0store)))
              (preference o3 (at-most-once (empty rover1store)))
              (preference o4 (at-most-once (full rover1store)))
              (preference sb15
               (sometime-before (have_soil_analysis rover2 waypoint4)
                (at rover0 waypoint1)))
              (preference sb28
               (sometime-before (have_soil_analysis rover0 waypoint1)
                (at rover1 waypoint4)))
              (preference sb29
               (sometime-before (have_soil_analysis rover0 waypoint1)
                (full rover2store)))
              (preference sb36
               (sometime-before (have_soil_analysis rover0 waypoint1)
                (calibrated camera0 rover0)))
              (preference sb39
               (sometime-before (have_rock_analysis rover1 waypoint3)
                (full rover2store)))
              (preference sb41
               (sometime-before (have_rock_analysis rover1 waypoint3)
                (full rover0store)))
              (preference sb56
               (sometime-before (have_rock_analysis rover0 waypoint2)
                (full rover1store)))
              (preference sb61
               (sometime-before (have_image rover0 objective0 high_res)
                (at rover1 waypoint0)))
              (preference sb63
               (sometime-before (have_image rover0 objective0 high_res)
                (at rover0 waypoint1)))
              (preference sb65
               (sometime-before (have_image rover0 objective0 high_res)
                (have_soil_analysis rover2 waypoint4)))
              (preference sb66
               (sometime-before (have_image rover0 objective0 high_res)
                (full rover0store)))
              (preference sb68
               (sometime-before (have_image rover0 objective0 high_res)
                (have_rock_analysis rover2 waypoint4)))))
        (:metric minimize
         (+ (* (is-violated sb68) 7.98828)
            (* (is-violated sb66) 6.80483)
            (* (is-violated sb65) 16.2007)
            (* (is-violated sb63) 13.2989)
            (* (is-violated sb61) 12.8207)
            (* (is-violated sb56) 7.39655)
            (* (is-violated sb41) 13.7083)
            (* (is-violated sb39) 10.2566)
            (* (is-violated sb36) 5.62138)
            (* (is-violated sb29) 11.6372)
            (* (is-violated sb28) 11.7359)
            (* (is-violated sb15) 7.91954)
            (* (is-violated o4) 11.44)
            (* (is-violated o3) 11.7359)
            (* (is-violated o2) 16.7356)
            (* (is-violated o1) 7.58483)
            (* (is-violated o0) 11.3772)
            (* (is-violated e7) 14.6945)
            (* (is-violated e6) 15.0292)
            (* (is-violated e5) 13.1166)
            (* (is-violated e4) 6.2131)
            (* (is-violated e3) 9.36897)
            (* (is-violated e2) 10.7228)
            (* (is-violated e1) 14.4524)
            (* (is-violated e0) 8.97448)
            (* (is-violated a0) 7.79103)
	)))
